/******************************************************************************
 * Copyright (c) Huawei Technologies Co., Ltd. 2023. All rights reserved.
 * iSulad licensed under the Mulan PSL v2.
 * You can use this software according to the terms and conditions of the Mulan PSL v2.
 * You may obtain a copy of Mulan PSL v2 at:
 *     http://license.coscl.org.cn/MulanPSL2
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
 * PURPOSE.
 * See the Mulan PSL v2 for more details.
 * Author: xuxuepeng
 * Create: 2023-07-06
 * Description: provide sandboxer controller implementation
 *********************************************************************************/

#include "sandboxer_controller.h"

namespace sandbox {

SandboxerController::SandboxerController(const std::string &sandboxer, const std::string &address)
    : m_sandboxer(sandboxer), m_address(address) {}

SandboxerController::~SandboxerController() {}

bool SandboxerController::Init(Errors &error)
{
    return true;
}

bool SandboxerController::Create(const std::string &sandboxId,
                                 const ControllerCreateParams &params,
                                 Errors &error)
{
    return true;
}

std::unique_ptr<ControllerSandboxInfo> SandboxerController::Start(const std::string &sandboxId, Errors &error)
{
    return nullptr;
}

std::unique_ptr<ControllerPlatformInfo> SandboxerController::Platform(const std::string &sandboxId, Errors &error)
{
    return nullptr;
}

std::string SandboxerController::Prepare(const std::string &sandboxId,
                                         const ControllerPrepareParams &params,
                                         Errors &error)
{
    return std::string("");
}

bool SandboxerController::Purge(const std::string &sandboxId, const std::string &containerId,
                                const std::string &execId, Errors &error)
{
    return true;
}

bool SandboxerController::UpdateResources(const std::string &sandboxId,
                                          const ControllerUpdateResourcesParams &params,
                                          Errors &error)
{
    return true;
}

bool SandboxerController::Stop(const std::string &sandboxId, uint32_t timeoutSecs, Errors &error)
{
    return true;
}

bool SandboxerController::Wait(std::shared_ptr<SandboxExitCallback> cb, const std::string &sandboxId, Errors &error)
{
    return true;
}

std::unique_ptr<ControllerSandboxStatus> SandboxerController::Status(const std::string &sandboxId, bool verbose,
                                                                     Errors &error)
{
    return nullptr;
}

bool SandboxerController::Shutdown(const std::string &sandboxId, Errors &error)
{
    return true;
}

bool SandboxerController::UpdateNetworkSettings(const std::string &sandboxId, const std::string &networkSettings,
                                                Errors &error)
{
    return true;
}

} // namespace sandbox
